<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilskey: xilskey_jscmd.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilskey
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xilskey__jscmd_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">xilskey_jscmd.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>Contains jtag, efuse and bbram related API's. </p>
<dl class="section note"><dt>Note</dt><dd><pre>
MODIFICATION HISTORY:</pre></dd></dl>
<p>Ver Who Date Changes </p>
<hr/>
<p> 1.00a rpoolla 04/26/13 First release 1.01a hk 09/18/13 Added BBRAM functionality. Following API's added: int <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d" title="This function initializes JTAG server for use in BBRAM algorithm. ">JtagServerInitBbram(XilSKey_Bbram *InstancePtr)</a> int Bbram_Init(XilSKey_Bbram *InstancePtr) int <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5" title="This function implements the BBRAM program key. ">Bbram_ProgramKey(XilSKey_Bbram *InstancePtr)</a> int <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb" title="This function implements the BBRAM verify key. ">Bbram_VerifyKey(XilSKey_Bbram *InstancePtr)</a> void <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3" title="This function does de-initialization. ">Bbram_DeInit(void)</a> 2.1 kvn 04/01/15 Fixed warnings. CR#716453.</p>
<pre>3.00  vns     31/07/15 Added efuse functionality for Ultrascale.
4.00  vns     09/10/15 Modified JtagWrite API as per IEEE 1149.1 standard
                       added TCK toggle after RTI state change where programming
                       will start and toggled TCK again at exit of RTI state to
                       stop programming. CR#885421.
5.0   vns     01/07/16 Modified JtagWrite_Ultrascale API as per IEEE 1149.1
                       standard added TCK toggle after RTI state change where
                       programming will start and ends programming at
                       TCK toggle after DR_SELECT state. CR #924262
                       Modified JtagServerInitBbram to support Ultrascale
                       BBRAM programming, added Bbram_Init_Ultra,
                       Bbram_ProgramKey_Ultra, Bbram_VerifyKey_Ultra
                       and Bbram_DeInit_Ultra APIs
6.0   vns     07/07/16 Initialized hardware module connections
                       Modified JtagWrite_Ultrascale API, to handover
                       programming sequence to hardware module to take care
                       of eFUSE programming.
                       Once Hardware module is triggered, JTAG state will be
                       entering to IDLE state and will wait for 5us and
                       toggles TCK pin at 1Mhz frequency. Finally it exists
                       when jtag state is navigated to DR SELECT by making
                       END pin to High state.
                       Modified return type of JtagWrite_Ultrascale API to int
                       for returning FAILURE on timeout.
      vns     07/28/16 Modified Bbram_ProgramKey_Ultra API to program control
                       word based on user inputs.
6.4   vns     02/27/18 Added support for virtex and virtex ultrascale plus
6.7   psl     03/18/19 Modified code to mask most significant nibble which
                       represents production version for ultrascale plus.
              03/20/19 Added eFuse/BBRAM key write support for SSIT devices.
      psl     03/29/19 Added Support for user configurable GPIO for jtag
                       control.
      arc     04/04/19 Fixed CPP warnings.
      psl     04/15/19 Corrected zynq Dap ID.
6.8   psl     06/26/19 Added support for user to add IDCODE, IR_length, SLR Nos,
                       device series for different devices.
      psl     08/23/19 Added Debug define to avoid writing of eFuse.
6.9   vns     03/18/20 Fixed Armcc compilation errors
7.0     am      10/04/20 Resolved MISRA C violations
7.1   am      11/29/20 Resolved MISRA C violations
7.1   kpt     04/08/21 Ignored product version of user defined IDCODE when comparing
                       with the tap code read from Jtag
7.2   am      07/13/21 Fixed doxygen warnings
7.5   ng      07/13/23 added SDT support</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ab98b09590119fe0a6ab338013f13528d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>&#160;&#160;&#160;<a class="el" href="xilskey__jscmd_8c.html#a9884c02efeb031cf92502efd09b1de69">dummy_printf</a></td></tr>
<tr class="memdesc:ab98b09590119fe0a6ab338013f13528d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dummy PRINTF.  <a href="#ab98b09590119fe0a6ab338013f13528d">More...</a><br/></td></tr>
<tr class="separator:ab98b09590119fe0a6ab338013f13528d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a052b63090cda80236391c5fc0c1fe30c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a052b63090cda80236391c5fc0c1fe30c">DEFAULT_FREQUENCY</a>&#160;&#160;&#160;10000000</td></tr>
<tr class="memdesc:a052b63090cda80236391c5fc0c1fe30c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default frequency.  <a href="#a052b63090cda80236391c5fc0c1fe30c">More...</a><br/></td></tr>
<tr class="separator:a052b63090cda80236391c5fc0c1fe30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fcff99f421f1bc8a1bbdb641ca0324e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a1fcff99f421f1bc8a1bbdb641ca0324e">MAX_FREQUENCY</a>&#160;&#160;&#160;30000000</td></tr>
<tr class="memdesc:a1fcff99f421f1bc8a1bbdb641ca0324e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum frequency.  <a href="#a1fcff99f421f1bc8a1bbdb641ca0324e">More...</a><br/></td></tr>
<tr class="separator:a1fcff99f421f1bc8a1bbdb641ca0324e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60057451f6a0a1a272ff3950f750931a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a60057451f6a0a1a272ff3950f750931a">ZYNQ_DAP_ID</a>&#160;&#160;&#160;0x0ba00477</td></tr>
<tr class="memdesc:a60057451f6a0a1a272ff3950f750931a"><td class="mdescLeft">&#160;</td><td class="mdescRight">DAP Id.  <a href="#a60057451f6a0a1a272ff3950f750931a">More...</a><br/></td></tr>
<tr class="separator:a60057451f6a0a1a272ff3950f750931a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99170739fdd9b31819ccf42fe4d9fb23"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a99170739fdd9b31819ccf42fe4d9fb23">KINTEX_ULTRA_MB_DAP_ID</a>&#160;&#160;&#160;0x03822093</td></tr>
<tr class="memdesc:a99170739fdd9b31819ccf42fe4d9fb23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Kintex Ultrascale microblaze TAP ID.  <a href="#a99170739fdd9b31819ccf42fe4d9fb23">More...</a><br/></td></tr>
<tr class="separator:a99170739fdd9b31819ccf42fe4d9fb23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae670495d5e20448484ca6cdcadc9638e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ae670495d5e20448484ca6cdcadc9638e">KINTEX_ULTRAPLUS_DAP_ID</a>&#160;&#160;&#160;0x04A62093</td></tr>
<tr class="memdesc:ae670495d5e20448484ca6cdcadc9638e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Kintex Ultrascale plus microblaze TAP ID.  <a href="#ae670495d5e20448484ca6cdcadc9638e">More...</a><br/></td></tr>
<tr class="separator:ae670495d5e20448484ca6cdcadc9638e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6372460fb9bf646f666117305f5f4758"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a6372460fb9bf646f666117305f5f4758">VIRTEX110_ULTRA_MB_DAP_ID</a>&#160;&#160;&#160;0x03931093</td></tr>
<tr class="memdesc:a6372460fb9bf646f666117305f5f4758"><td class="mdescLeft">&#160;</td><td class="mdescRight">VIRTEX 110 Ultrascale microblaze TAP id.  <a href="#a6372460fb9bf646f666117305f5f4758">More...</a><br/></td></tr>
<tr class="separator:a6372460fb9bf646f666117305f5f4758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f7b26619d5898576cb85aafae76655"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a75f7b26619d5898576cb85aafae76655">VIRTEX108_ULTRA_MB_DAP_ID</a>&#160;&#160;&#160;0x03842093</td></tr>
<tr class="memdesc:a75f7b26619d5898576cb85aafae76655"><td class="mdescLeft">&#160;</td><td class="mdescRight">VIRTEX 108 Ultrascale microblaze TAP id.  <a href="#a75f7b26619d5898576cb85aafae76655">More...</a><br/></td></tr>
<tr class="separator:a75f7b26619d5898576cb85aafae76655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6d8807527d4ba1d434f4508655119c5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ac6d8807527d4ba1d434f4508655119c5">VIRTEX_ULTRAPLUS_DAP_ID</a>&#160;&#160;&#160;0x04b31093</td></tr>
<tr class="memdesc:ac6d8807527d4ba1d434f4508655119c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">VIRTEX Ultrascale plus microblaze TAP id.  <a href="#ac6d8807527d4ba1d434f4508655119c5">More...</a><br/></td></tr>
<tr class="separator:ac6d8807527d4ba1d434f4508655119c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb46e232e43c29e26aee3e7be779d101"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#afb46e232e43c29e26aee3e7be779d101">VIRTEX_ULTRAPLUS_VC13P_DAP_ID</a>&#160;&#160;&#160;0x04B51093</td></tr>
<tr class="memdesc:afb46e232e43c29e26aee3e7be779d101"><td class="mdescLeft">&#160;</td><td class="mdescRight">XCVU13P VIRTEX Ultrascale Plus microblaze TAP id.  <a href="#afb46e232e43c29e26aee3e7be779d101">More...</a><br/></td></tr>
<tr class="separator:afb46e232e43c29e26aee3e7be779d101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87d01c25a5b17d68b245f61b25d900e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a87d01c25a5b17d68b245f61b25d900e6">ZYNQ_ULTRAPLUS_PL_DAP_ID</a>&#160;&#160;&#160;0x0484A093</td></tr>
<tr class="memdesc:a87d01c25a5b17d68b245f61b25d900e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zynq Ultrascale plus TAP ID.  <a href="#a87d01c25a5b17d68b245f61b25d900e6">More...</a><br/></td></tr>
<tr class="separator:a87d01c25a5b17d68b245f61b25d900e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9416efb3f480fb568cd0e7e625363ecf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a9416efb3f480fb568cd0e7e625363ecf">set_last_error</a>(JS,...)&#160;&#160;&#160;js_set_last_error(&amp;(JS)-&gt;js.base, __VA_ARGS__)</td></tr>
<tr class="memdesc:a9416efb3f480fb568cd0e7e625363ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set last error.  <a href="#a9416efb3f480fb568cd0e7e625363ecf">More...</a><br/></td></tr>
<tr class="separator:a9416efb3f480fb568cd0e7e625363ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9884c02efeb031cf92502efd09b1de69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a9884c02efeb031cf92502efd09b1de69">dummy_printf</a> (const char *ctrl1,...)</td></tr>
<tr class="memdesc:a9884c02efeb031cf92502efd09b1de69"><td class="mdescLeft">&#160;</td><td class="mdescRight">function prototype of dummy_printf  <a href="#a9884c02efeb031cf92502efd09b1de69">More...</a><br/></td></tr>
<tr class="separator:a9884c02efeb031cf92502efd09b1de69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfdc5e0b4e81acdf215e108b6f84ac56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#adfdc5e0b4e81acdf215e108b6f84ac56">GpioConfig</a> (unsigned long addr, unsigned long mask, unsigned long val)</td></tr>
<tr class="memdesc:adfdc5e0b4e81acdf215e108b6f84ac56"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs Gpio Configuration.  <a href="#adfdc5e0b4e81acdf215e108b6f84ac56">More...</a><br/></td></tr>
<tr class="separator:adfdc5e0b4e81acdf215e108b6f84ac56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a720bf1335f27d3a597b46ae1b938c106"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a720bf1335f27d3a597b46ae1b938c106">JtagInitGpio</a> (XilSKey_ModuleSelection Module)</td></tr>
<tr class="memdesc:a720bf1335f27d3a597b46ae1b938c106"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs Gpio Jtag initialization.  <a href="#a720bf1335f27d3a597b46ae1b938c106">More...</a><br/></td></tr>
<tr class="separator:a720bf1335f27d3a597b46ae1b938c106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7536fc31bdd4f46c83f517442b520977"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a7536fc31bdd4f46c83f517442b520977">getByteCountFromBitCount</a> (int bitCount)</td></tr>
<tr class="memdesc:a7536fc31bdd4f46c83f517442b520977"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates ByteCount From BitCount.  <a href="#a7536fc31bdd4f46c83f517442b520977">More...</a><br/></td></tr>
<tr class="separator:a7536fc31bdd4f46c83f517442b520977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50f568193dfe2570ed49e4e368725e2b"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr</a> (u8 Instr, u8 cmd)</td></tr>
<tr class="memdesc:a50f568193dfe2570ed49e4e368725e2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates instructions.  <a href="#a50f568193dfe2570ed49e4e368725e2b">More...</a><br/></td></tr>
<tr class="separator:a50f568193dfe2570ed49e4e368725e2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b12651f0c85e8830046ff9fb542f6d8"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a3b12651f0c85e8830046ff9fb542f6d8">getNavigateTAPValue</a> (unsigned char startState, unsigned char endState)</td></tr>
<tr class="memdesc:a3b12651f0c85e8830046ff9fb542f6d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates Navigate TAPValue.  <a href="#a3b12651f0c85e8830046ff9fb542f6d8">More...</a><br/></td></tr>
<tr class="separator:a3b12651f0c85e8830046ff9fb542f6d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa12af5b761b072bbd5f220eb1efc0b96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#aa12af5b761b072bbd5f220eb1efc0b96">navigateTAP</a> (unsigned char startState, unsigned char endState)</td></tr>
<tr class="memdesc:aa12af5b761b072bbd5f220eb1efc0b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs NavigateTAP.  <a href="#aa12af5b761b072bbd5f220eb1efc0b96">More...</a><br/></td></tr>
<tr class="separator:aa12af5b761b072bbd5f220eb1efc0b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d7bf309d936159a34ee37a072706ec4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a6d7bf309d936159a34ee37a072706ec4">jtagShiftTDI</a> (unsigned char tdiData, unsigned char *tdoData, int clkCount, int exitState)</td></tr>
<tr class="memdesc:a6d7bf309d936159a34ee37a072706ec4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs Jtag shift TDI operation.  <a href="#a6d7bf309d936159a34ee37a072706ec4">More...</a><br/></td></tr>
<tr class="separator:a6d7bf309d936159a34ee37a072706ec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ad376e7e58fcf232bfc73ce22c6ca68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a4ad376e7e58fcf232bfc73ce22c6ca68">jtagShiftTDIBits</a> (unsigned char *tdiBuf, unsigned char *tdoBuf, int bitCount, js_state_t endState, unsigned int flags)</td></tr>
<tr class="memdesc:a4ad376e7e58fcf232bfc73ce22c6ca68"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will be used to shift long bits.  <a href="#a4ad376e7e58fcf232bfc73ce22c6ca68">More...</a><br/></td></tr>
<tr class="separator:a4ad376e7e58fcf232bfc73ce22c6ca68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaebc31c432e1cd2d9ebdbaa0b06a4995"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads</a> (<a class="el" href="structjs__port__struct.html">js_port_t</a> *port_arg, int irPrePadBits, int irPostPadBits, int drPrePadBits, int drPostPadBits)</td></tr>
<tr class="memdesc:aaebc31c432e1cd2d9ebdbaa0b06a4995"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets Jtag Pre and Post Pads.  <a href="#aaebc31c432e1cd2d9ebdbaa0b06a4995">More...</a><br/></td></tr>
<tr class="separator:aaebc31c432e1cd2d9ebdbaa0b06a4995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78af9b51ba9fcca1fee4e43816ccf78f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate</a> (<a class="el" href="structjs__port__struct.html">js_port_t</a> *port, js_state_t state)</td></tr>
<tr class="memdesc:a78af9b51ba9fcca1fee4e43816ccf78f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs Jtag navigate operation.  <a href="#a78af9b51ba9fcca1fee4e43816ccf78f">More...</a><br/></td></tr>
<tr class="separator:a78af9b51ba9fcca1fee4e43816ccf78f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7464db2af53dd1a43ebc36827189cb52"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift</a> (<a class="el" href="structjs__port__struct.html">js_port_t</a> *port_arg, unsigned char mode, int bits, unsigned char *wrBuffer, unsigned char *rdBuffer, js_state_t state)</td></tr>
<tr class="memdesc:a7464db2af53dd1a43ebc36827189cb52"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function takes care of padding Must be set up with pre/post ir/dr info.  <a href="#a7464db2af53dd1a43ebc36827189cb52">More...</a><br/></td></tr>
<tr class="separator:a7464db2af53dd1a43ebc36827189cb52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4303ea32671ab608d25123c7f70159ae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a4303ea32671ab608d25123c7f70159ae">open_port</a> (<a class="el" href="structjs__lib__server__struct.html">js_lib_server_t</a> *server, <a class="el" href="structjs__port__descr__struct.html">js_port_descr_t</a> *port_descr, js_lib_port_t **result)</td></tr>
<tr class="memdesc:a4303ea32671ab608d25123c7f70159ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs open port operation.  <a href="#a4303ea32671ab608d25123c7f70159ae">More...</a><br/></td></tr>
<tr class="separator:a4303ea32671ab608d25123c7f70159ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84993b73c0bf1d71424fad91d4fdfbe7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structjs__server__struct.html">js_server_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a84993b73c0bf1d71424fad91d4fdfbe7">js_init_zynq</a> ()</td></tr>
<tr class="memdesc:a84993b73c0bf1d71424fad91d4fdfbe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">&lt; Prototype declarations for Xilskey jscmd APIs  <a href="#a84993b73c0bf1d71424fad91d4fdfbe7">More...</a><br/></td></tr>
<tr class="separator:a84993b73c0bf1d71424fad91d4fdfbe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a1a649f81c76f0a81196ac2d6a411bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite</a> (unsigned char row, unsigned char bit)</td></tr>
<tr class="memdesc:a8a1a649f81c76f0a81196ac2d6a411bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">JTAG Server Write routine.  <a href="#a8a1a649f81c76f0a81196ac2d6a411bc">More...</a><br/></td></tr>
<tr class="separator:a8a1a649f81c76f0a81196ac2d6a411bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59fd1f16ea68cca3d04d37883079e6f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead</a> (unsigned char row, unsigned int *row_data, unsigned char marginOption)</td></tr>
<tr class="memdesc:a59fd1f16ea68cca3d04d37883079e6f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">JTAG Server Read routine.  <a href="#a59fd1f16ea68cca3d04d37883079e6f4">More...</a><br/></td></tr>
<tr class="separator:a59fd1f16ea68cca3d04d37883079e6f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbcca77303d5d6c281dbabec5a5f1ee3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#adbcca77303d5d6c281dbabec5a5f1ee3">JtagValidateMioPins</a> (XilSKey_ModuleSelection Module)</td></tr>
<tr class="memdesc:adbcca77303d5d6c281dbabec5a5f1ee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function validates MIO pins.  <a href="#adbcca77303d5d6c281dbabec5a5f1ee3">More...</a><br/></td></tr>
<tr class="separator:adbcca77303d5d6c281dbabec5a5f1ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae229739e4765d3ed48b18e529764bdfe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit</a> (<a class="el" href="struct_xil_s_key___e_pl.html">XilSKey_EPl</a> *InstancePtr)</td></tr>
<tr class="memdesc:ae229739e4765d3ed48b18e529764bdfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">JTAG Server Initialization routine.  <a href="#ae229739e4765d3ed48b18e529764bdfe">More...</a><br/></td></tr>
<tr class="separator:ae229739e4765d3ed48b18e529764bdfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399e6b6a3d8842f49de0758c5b25c67d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram</a> (XilSKey_Bbram *InstancePtr)</td></tr>
<tr class="memdesc:a399e6b6a3d8842f49de0758c5b25c67d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes JTAG server for use in BBRAM algorithm.  <a href="#a399e6b6a3d8842f49de0758c5b25c67d">More...</a><br/></td></tr>
<tr class="separator:a399e6b6a3d8842f49de0758c5b25c67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abae9797f8dabe8fe6089a60337059572"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init</a> (void)</td></tr>
<tr class="memdesc:abae9797f8dabe8fe6089a60337059572"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the BBRAM algorithm initialization.  <a href="#abae9797f8dabe8fe6089a60337059572">More...</a><br/></td></tr>
<tr class="separator:abae9797f8dabe8fe6089a60337059572"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78e9cdbbe9a8bb08255b8cdada63efe5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey</a> (XilSKey_Bbram *InstancePtr)</td></tr>
<tr class="memdesc:a78e9cdbbe9a8bb08255b8cdada63efe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the BBRAM program key.  <a href="#a78e9cdbbe9a8bb08255b8cdada63efe5">More...</a><br/></td></tr>
<tr class="separator:a78e9cdbbe9a8bb08255b8cdada63efe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0099206e41d3ca07d3d0feeb8a1802bb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey</a> (XilSKey_Bbram *InstancePtr)</td></tr>
<tr class="memdesc:a0099206e41d3ca07d3d0feeb8a1802bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the BBRAM verify key.  <a href="#a0099206e41d3ca07d3d0feeb8a1802bb">More...</a><br/></td></tr>
<tr class="separator:a0099206e41d3ca07d3d0feeb8a1802bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d6c014687d7fabae96174e4e80907a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit</a> (void)</td></tr>
<tr class="memdesc:a7d6c014687d7fabae96174e4e80907a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function does de-initialization.  <a href="#a7d6c014687d7fabae96174e4e80907a3">More...</a><br/></td></tr>
<tr class="separator:a7d6c014687d7fabae96174e4e80907a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65f94f046816b7e5dddb8e06dcfa0db0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon</a> (u8 Row, u32 *Row_Data)</td></tr>
<tr class="memdesc:a65f94f046816b7e5dddb8e06dcfa0db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads temperature and voltage of Ultrascale.  <a href="#a65f94f046816b7e5dddb8e06dcfa0db0">More...</a><br/></td></tr>
<tr class="separator:a65f94f046816b7e5dddb8e06dcfa0db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad71fe773dff0bd882d39c2936e319c63"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale</a> (u8 Row, u8 Bit, u8 Page, u8 Redundant)</td></tr>
<tr class="memdesc:ad71fe773dff0bd882d39c2936e319c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function blows the fuse of Ultrascale with provided parameters.  <a href="#ad71fe773dff0bd882d39c2936e319c63">More...</a><br/></td></tr>
<tr class="separator:ad71fe773dff0bd882d39c2936e319c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2740a0531078952f78e0b2680f62cd1a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale</a> (u8 Row, u32 *RowData, u8 MarginOption, u8 Page, u8 Redundant)</td></tr>
<tr class="memdesc:a2740a0531078952f78e0b2680f62cd1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads entire row of Ultrascale's EFUSE.  <a href="#a2740a0531078952f78e0b2680f62cd1a">More...</a><br/></td></tr>
<tr class="separator:a2740a0531078952f78e0b2680f62cd1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81be870dc9cfe995815d14bc106473a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a81be870dc9cfe995815d14bc106473a7">JtagRead_Status_Ultrascale</a> (u32 *Rowdata)</td></tr>
<tr class="memdesc:a81be870dc9cfe995815d14bc106473a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads the status row of Ultrascale's EFUSE and updates the pointer.  <a href="#a81be870dc9cfe995815d14bc106473a7">More...</a><br/></td></tr>
<tr class="separator:a81be870dc9cfe995815d14bc106473a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2240f1d411f1eef6605ee6da1426c5ba"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale</a> (u32 *Crc, u8 MarginOption)</td></tr>
<tr class="memdesc:a2240f1d411f1eef6605ee6da1426c5ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function verifies the AES key of Ultrascale's EFUSE with provided CRC value.  <a href="#a2240f1d411f1eef6605ee6da1426c5ba">More...</a><br/></td></tr>
<tr class="separator:a2240f1d411f1eef6605ee6da1426c5ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdb9b1c206a7bc8f6b18653dc3b5e5e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra</a> (void)</td></tr>
<tr class="memdesc:afdb9b1c206a7bc8f6b18653dc3b5e5e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function close UltraScale.  <a href="#afdb9b1c206a7bc8f6b18653dc3b5e5e1">More...</a><br/></td></tr>
<tr class="separator:afdb9b1c206a7bc8f6b18653dc3b5e5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Xilskey jscmd API declarations</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>  </p>
</div></td></tr>
<tr class="memitem:a3222cb7373329b7e49fb631629e297d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin</a> (int pin, int value)</td></tr>
<tr class="memdesc:a3222cb7373329b7e49fb631629e297d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">&lt; Prototype declarations for Xilskey jscmd APIs  <a href="#a3222cb7373329b7e49fb631629e297d4">More...</a><br/></td></tr>
<tr class="separator:a3222cb7373329b7e49fb631629e297d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad27656d201a814dbfa3d4f2df49f48fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad27656d201a814dbfa3d4f2df49f48fc"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>readPin</b> (int pin)</td></tr>
<tr class="separator:ad27656d201a814dbfa3d4f2df49f48fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ad332b969fb28da07cb32106cb4fbebf4"><td class="memItemLeft" align="right" valign="top">XilSKey_JtagSlr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a></td></tr>
<tr class="memdesc:ad332b969fb28da07cb32106cb4fbebf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">JTAG Tap Instance.  <a href="#ad332b969fb28da07cb32106cb4fbebf4">More...</a><br/></td></tr>
<tr class="separator:ad332b969fb28da07cb32106cb4fbebf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48a8908e1f7d0df90b4ea73dfcd8c99b"><td class="memItemLeft" align="right" valign="top">XSKEfusePl_Fpga&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a48a8908e1f7d0df90b4ea73dfcd8c99b">PlFpgaFlag</a></td></tr>
<tr class="memdesc:a48a8908e1f7d0df90b4ea73dfcd8c99b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For Storing Fpga series.  <a href="#a48a8908e1f7d0df90b4ea73dfcd8c99b">More...</a><br/></td></tr>
<tr class="separator:a48a8908e1f7d0df90b4ea73dfcd8c99b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a887c0b49910954d0dddb6f6f3127f448"><td class="memItemLeft" align="right" valign="top">const unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xilskey__jscmd_8c.html#a887c0b49910954d0dddb6f6f3127f448">JTAGNavigateTable</a> [256]</td></tr>
<tr class="memdesc:a887c0b49910954d0dddb6f6f3127f448"><td class="mdescLeft">&#160;</td><td class="mdescRight">File generated by JTAG.EXE.  <a href="#a887c0b49910954d0dddb6f6f3127f448">More...</a><br/></td></tr>
<tr class="separator:a887c0b49910954d0dddb6f6f3127f448"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a052b63090cda80236391c5fc0c1fe30c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFAULT_FREQUENCY&#160;&#160;&#160;10000000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default frequency. </p>

</div>
</div>
<a class="anchor" id="ab98b09590119fe0a6ab338013f13528d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define js_printf&#160;&#160;&#160;<a class="el" href="xilskey__jscmd_8c.html#a9884c02efeb031cf92502efd09b1de69">dummy_printf</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dummy PRINTF. </p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a720bf1335f27d3a597b46ae1b938c106">JtagInitGpio()</a>, <a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram()</a>, <a class="el" href="xilskey__jscmd_8c.html#a4ad376e7e58fcf232bfc73ce22c6ca68">jtagShiftTDIBits()</a>, and <a class="el" href="xilskey__jscmd_8c.html#aa12af5b761b072bbd5f220eb1efc0b96">navigateTAP()</a>.</p>

</div>
</div>
<a class="anchor" id="a99170739fdd9b31819ccf42fe4d9fb23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KINTEX_ULTRA_MB_DAP_ID&#160;&#160;&#160;0x03822093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Kintex Ultrascale microblaze TAP ID. </p>

</div>
</div>
<a class="anchor" id="ae670495d5e20448484ca6cdcadc9638e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KINTEX_ULTRAPLUS_DAP_ID&#160;&#160;&#160;0x04A62093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Kintex Ultrascale plus microblaze TAP ID. </p>

</div>
</div>
<a class="anchor" id="a1fcff99f421f1bc8a1bbdb641ca0324e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_FREQUENCY&#160;&#160;&#160;30000000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum frequency. </p>

</div>
</div>
<a class="anchor" id="a9416efb3f480fb568cd0e7e625363ecf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define set_last_error</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">JS, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;js_set_last_error(&amp;(JS)-&gt;js.base, __VA_ARGS__)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set last error. </p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a4303ea32671ab608d25123c7f70159ae">open_port()</a>.</p>

</div>
</div>
<a class="anchor" id="a75f7b26619d5898576cb85aafae76655"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIRTEX108_ULTRA_MB_DAP_ID&#160;&#160;&#160;0x03842093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>VIRTEX 108 Ultrascale microblaze TAP id. </p>

</div>
</div>
<a class="anchor" id="a6372460fb9bf646f666117305f5f4758"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIRTEX110_ULTRA_MB_DAP_ID&#160;&#160;&#160;0x03931093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>VIRTEX 110 Ultrascale microblaze TAP id. </p>

</div>
</div>
<a class="anchor" id="ac6d8807527d4ba1d434f4508655119c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIRTEX_ULTRAPLUS_DAP_ID&#160;&#160;&#160;0x04b31093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>VIRTEX Ultrascale plus microblaze TAP id. </p>

</div>
</div>
<a class="anchor" id="afb46e232e43c29e26aee3e7be779d101"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VIRTEX_ULTRAPLUS_VC13P_DAP_ID&#160;&#160;&#160;0x04B51093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>XCVU13P VIRTEX Ultrascale Plus microblaze TAP id. </p>

</div>
</div>
<a class="anchor" id="a60057451f6a0a1a272ff3950f750931a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ZYNQ_DAP_ID&#160;&#160;&#160;0x0ba00477</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>DAP Id. </p>

</div>
</div>
<a class="anchor" id="a87d01c25a5b17d68b245f61b25d900e6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ZYNQ_ULTRAPLUS_PL_DAP_ID&#160;&#160;&#160;0x0484A093</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Zynq Ultrascale plus TAP ID. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="afdb9b1c206a7bc8f6b18653dc3b5e5e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Bbram_Close_Ultra </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function close UltraScale. </p>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section note"><dt>Note</dt><dd>none </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a7d6c014687d7fabae96174e4e80907a3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Bbram_DeInit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function does de-initialization. </p>
<p>De-initialization.</p>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="abae9797f8dabe8fe6089a60337059572"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Bbram_Init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the BBRAM algorithm initialization. </p>
<p>BBRAM Algorithm - Initialization.</p>
<dl class="section return"><dt>Returns</dt><dd><pre class="fragment">  - XST_FAILURE - In case of failure
  - XST_SUCCESS - In case of Success
</pre></dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__utils_8c.html#a2a71bd701b24852c007d5ebad8acc257">XilSKey_Efuse_IsTimerExpired()</a>, <a class="el" href="xilskey__utils_8c.html#ab2eaa24ca4b7d40aab0d75804d217616">XilSKey_Efuse_SetTimeOut()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a78e9cdbbe9a8bb08255b8cdada63efe5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Bbram_ProgramKey </td>
          <td>(</td>
          <td class="paramtype">XilSKey_Bbram *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the BBRAM program key. </p>
<p>BBRAM Algorithm - Program key.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>- instance pointer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><pre class="fragment">  - XST_FAILURE - In case of failure
  - XST_SUCCESS - In case of Success
</pre></dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a0099206e41d3ca07d3d0feeb8a1802bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Bbram_VerifyKey </td>
          <td>(</td>
          <td class="paramtype">XilSKey_Bbram *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function implements the BBRAM verify key. </p>
<p>BBRAM Algorithm - Verify key.</p>
<p>Program and verify key have to be done together; These API's cannot be used independently.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>- instance pointer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><pre class="fragment">  - XST_FAILURE - In case of failure
  - XST_SUCCESS - In case of Success
</pre></dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a50f568193dfe2570ed49e4e368725e2b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 calcInstr </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Instr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>cmd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calculates instructions. </p>
<dl class="section return"><dt>Returns</dt><dd>u32-bit val value </dd></dl>

<p>References <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead()</a>, <a class="el" href="xilskey__jscmd_8c.html#a81be870dc9cfe995815d14bc106473a7">JtagRead_Status_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>, and <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>.</p>

</div>
</div>
<a class="anchor" id="a9884c02efeb031cf92502efd09b1de69"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dummy_printf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ctrl1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>function prototype of dummy_printf </p>

</div>
</div>
<a class="anchor" id="a7536fc31bdd4f46c83f517442b520977"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int getByteCountFromBitCount </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bitCount</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calculates ByteCount From BitCount. </p>
<dl class="section return"><dt>Returns</dt><dd>ByteCount </dd></dl>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a4ad376e7e58fcf232bfc73ce22c6ca68">jtagShiftTDIBits()</a>.</p>

</div>
</div>
<a class="anchor" id="a3b12651f0c85e8830046ff9fb542f6d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int getNavigateTAPValue </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>startState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>endState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calculates Navigate TAPValue. </p>
<dl class="section return"><dt>Returns</dt><dd>int tableValue </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a887c0b49910954d0dddb6f6f3127f448">JTAGNavigateTable</a>.</p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#aa12af5b761b072bbd5f220eb1efc0b96">navigateTAP()</a>.</p>

</div>
</div>
<a class="anchor" id="adfdc5e0b4e81acdf215e108b6f84ac56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GpioConfig </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs Gpio Configuration. </p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a720bf1335f27d3a597b46ae1b938c106">JtagInitGpio()</a>.</p>

</div>
</div>
<a class="anchor" id="a84993b73c0bf1d71424fad91d4fdfbe7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structjs__server__struct.html">js_server_t</a>* js_init_zynq </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>&lt; Prototype declarations for Xilskey jscmd APIs </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a4303ea32671ab608d25123c7f70159ae">open_port()</a>.</p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram()</a>.</p>

</div>
</div>
<a class="anchor" id="a78af9b51ba9fcca1fee4e43816ccf78f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int jtag_navigate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structjs__port__struct.html">js_port_t</a> *&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">js_state_t&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs Jtag navigate operation. </p>
<dl class="section return"><dt>Returns</dt><dd>status value </dd></dl>

<p>References <a class="el" href="structjs__port__struct.html#abf533f6c7a4e296234a45949cbf45839">js_port_struct::root_node</a>.</p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead()</a>, <a class="el" href="xilskey__jscmd_8c.html#a81be870dc9cfe995815d14bc106473a7">JtagRead_Status_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>, <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a4303ea32671ab608d25123c7f70159ae">open_port()</a>.</p>

</div>
</div>
<a class="anchor" id="a65f94f046816b7e5dddb8e06dcfa0db0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Jtag_Read_Sysmon </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Row_Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads temperature and voltage of Ultrascale. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Row</td><td>specifies the row number to read. </td></tr>
    <tr><td class="paramname">Row_Data</td><td>is a pointer to a variable, to store the read value of given row.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

<p>Referenced by <a class="el" href="xilskey__utils_8c.html#aff812a4c70a44e09397fbf6bad6f0536">XilSKey_EfusePs_XAdcReadTemperatureAndVoltage()</a>.</p>

</div>
</div>
<a class="anchor" id="aaebc31c432e1cd2d9ebdbaa0b06a4995"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int jtag_setPreAndPostPads </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structjs__port__struct.html">js_port_t</a> *&#160;</td>
          <td class="paramname"><em>port_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>irPrePadBits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>irPostPadBits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>drPrePadBits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>drPostPadBits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets Jtag Pre and Post Pads. </p>
<dl class="section return"><dt>Returns</dt><dd>status value </dd></dl>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>.</p>

</div>
</div>
<a class="anchor" id="a7464db2af53dd1a43ebc36827189cb52"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int jtag_shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structjs__port__struct.html">js_port_t</a> *&#160;</td>
          <td class="paramname"><em>port_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>wrBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>rdBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">js_state_t&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function takes care of padding Must be set up with pre/post ir/dr info. </p>
<dl class="section return"><dt>Returns</dt><dd>status value </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a7536fc31bdd4f46c83f517442b520977">getByteCountFromBitCount()</a>, and <a class="el" href="structjs__port__struct.html#abf533f6c7a4e296234a45949cbf45839">js_port_struct::root_node</a>.</p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead()</a>, <a class="el" href="xilskey__jscmd_8c.html#a81be870dc9cfe995815d14bc106473a7">JtagRead_Status_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>, and <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>.</p>

</div>
</div>
<a class="anchor" id="a2240f1d411f1eef6605ee6da1426c5ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 JtagAES_Check_Ultrascale </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Crc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>MarginOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function verifies the AES key of Ultrascale's EFUSE with provided CRC value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Crc</td><td>is a pointer to a 32 bit variable which holds the expected AES key's CRC. </td></tr>
    <tr><td class="paramname">MarginOption</td><td>is a variable which tells the margin option in which read operation to be performed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns XST_FAILURE/XST_SUCCESS<ul>
<li>XST_SUCCESS - If CRC is correct</li>
<li>XST_FAILURE - If CRC is wrong</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To verify AES key with provided CRC 256 bits need to be written with all ZEROS and last 32 bits with CRC. And then CTS word should be framed and read 9 rows. The keys are stored in 8 rows (20 to 27) but in UltraScale the device will read all 1s. On the 9th read (row 28), the CRC computation takes place. An extra read after the 9th read is required to read the computed CRC out (can use last row addr of 28 or row 0). The FPGA internally compares the computed CRC with the expected CRC loaded through the FUSE_KEY operation. If they match, then the expected CRC is read. If not, the FPGA will return all 1s. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__epl_8c.html#a48a8908e1f7d0df90b4ea73dfcd8c99b">PlFpgaFlag</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a720bf1335f27d3a597b46ae1b938c106"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void JtagInitGpio </td>
          <td>(</td>
          <td class="paramtype">XilSKey_ModuleSelection&#160;</td>
          <td class="paramname"><em>Module</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs Gpio Jtag initialization. </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#adfdc5e0b4e81acdf215e108b6f84ac56">GpioConfig()</a>, and <a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>.</p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram()</a>.</p>

</div>
</div>
<a class="anchor" id="a59fd1f16ea68cca3d04d37883079e6f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void JtagRead </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>row_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>marginOption</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>JTAG Server Read routine. </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a81be870dc9cfe995815d14bc106473a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void JtagRead_Status_Ultrascale </td>
          <td>(</td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Rowdata</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads the status row of Ultrascale's EFUSE and updates the pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Rowdata</td><td>is a pointer to a 32 bit variable which stores the status register value read from EFUSE status register.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Method to read FUSE register in Direct Macro Access way. For reading the status values we need send the bitstream in shift DR state. Shift in MAGIC_CTS_WRITE "FEED28AC" for ultrascale Read 64 bit data in IR read state. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__utils_8c.html#a7577067134914b99bca5e54b62bd4e6f">XilSKey_Efuse_ReverseHex()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a2740a0531078952f78e0b2680f62cd1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void JtagRead_Ultrascale </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>RowData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>MarginOption</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Page</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Redundant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads entire row of Ultrascale's EFUSE. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Row</td><td>specifies the row number of EFUSE. </td></tr>
    <tr><td class="paramname">MarginOption</td><td>is a variable which tells the margin option in which read operation to be performed. </td></tr>
    <tr><td class="paramname">Page</td><td>tell the page of EFUSE in which the given row is located. </td></tr>
    <tr><td class="paramname">Redundant</td><td>is a flag to specify the bit to be programmed is Normal bit or Redundant bit.<ul>
<li>Redundant - XSK_EFUSEPL_REDUNDANT_ULTRA</li>
<li>Normal - XSK_EFUSEPL_NORMAL_ULTRA This variable is not valid for Ultrascale plus as each row contains both redundant and normal bits upper 16 are redundant.</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Method to read FUSE register in Direct Macro Access way. Go to TLR to clear FUSE_CTS Load FUSE_CTS instruction on IR Step to CDR/SDR to shift in 32-bits FUSE_CTS command word Shift in MAGIC_CTS_WRITE "FEED28AC" for ultrascale Read 64 bit data in IR read state. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__epl_8c.html#a48a8908e1f7d0df90b4ea73dfcd8c99b">PlFpgaFlag</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="ae229739e4765d3ed48b18e529764bdfe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int JtagServerInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_xil_s_key___e_pl.html">XilSKey_EPl</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>JTAG Server Initialization routine. </p>

<p>References <a class="el" href="struct_xil_s_key___e_pl.html#a38866931c81a58e00bcc5ddb97bc480f">XilSKey_EPl::FpgaFlag</a>, <a class="el" href="struct_xil_s_key___e_pl.html#aab5460f2ce046d0465e58816aee2ec4c">XilSKey_EPl::GpioInputCh</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a48f629a0d571b0446bef0bdf880838b3">XilSKey_EPl::GpioOutPutCh</a>, <a class="el" href="struct_xil_s_key___e_pl.html#ac202d3a966a769834389ff7c6290b35d">XilSKey_EPl::HwmGpioEnd</a>, <a class="el" href="struct_xil_s_key___e_pl.html#ae55857a70dba305506c52fba852110ac">XilSKey_EPl::HwmGpioReady</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a56d91ced464348fec8f2a8fbce77bb7a">XilSKey_EPl::HwmGpioStart</a>, <a class="el" href="xilskey__jscmd_8c.html#a84993b73c0bf1d71424fad91d4fdfbe7">js_init_zynq()</a>, <a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>, <a class="el" href="struct_xil_s_key___e_pl.html#ada4028ad814145b1809a2f88898aaecd">XilSKey_EPl::JtagGpioID</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a0d11eb75b7c39d9dc0e78f024d614537">XilSKey_EPl::JtagGpioTCK</a>, <a class="el" href="struct_xil_s_key___e_pl.html#ae75b1daf8df1029358e5a15ab9bc26fe">XilSKey_EPl::JtagGpioTDI</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a4134bce2ab39d2d47673f291dcce73c2">XilSKey_EPl::JtagGpioTDO</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a05f212c85ea8dbd450f600aa21e6e8ed">XilSKey_EPl::JtagGpioTMS</a>, <a class="el" href="xilskey__jscmd_8c.html#a720bf1335f27d3a597b46ae1b938c106">JtagInitGpio()</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a5df47267442068ab0ed0246010b830eb">XilSKey_EPl::JtagMioMuxSel</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a96ac0343e25d5018afdf244e151b5774">XilSKey_EPl::JtagMioTCK</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a2776f357478d389408d232913c1cbb53">XilSKey_EPl::JtagMioTDI</a>, <a class="el" href="struct_xil_s_key___e_pl.html#af8f9f0570d4bfc7acacee027586f5e56">XilSKey_EPl::JtagMioTDO</a>, <a class="el" href="struct_xil_s_key___e_pl.html#aba077864dc5eaae499c2248fac346f25">XilSKey_EPl::JtagMioTMS</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a591d57563de0bf3d53980b2044668838">XilSKey_EPl::JtagMuxSelLineDefVal</a>, <a class="el" href="xilskey__jscmd_8c.html#adbcca77303d5d6c281dbabec5a5f1ee3">JtagValidateMioPins()</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a4b9a790a0d2ce5fee937ab96fc48cb54">XilSKey_EPl::MasterSlr</a>, <a class="el" href="struct_xil_s_key___e_pl.html#a9822db41ea7dafc7f6228f4993f290c8">XilSKey_EPl::NumSlr</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a399e6b6a3d8842f49de0758c5b25c67d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int JtagServerInitBbram </td>
          <td>(</td>
          <td class="paramtype">XilSKey_Bbram *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes JTAG server for use in BBRAM algorithm. </p>
<p>JTAG Server Initialization routine for Bbram.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>- instance pointer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><pre class="fragment">  - XST_FAILURE - In case of failure
  - XST_SUCCESS - In case of Success
</pre></dd></dl>
<dl class="section note"><dt>Note</dt><dd></dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a84993b73c0bf1d71424fad91d4fdfbe7">js_init_zynq()</a>, <a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>, <a class="el" href="xilskey__jscmd_8c.html#a720bf1335f27d3a597b46ae1b938c106">JtagInitGpio()</a>, <a class="el" href="xilskey__jscmd_8c.html#adbcca77303d5d6c281dbabec5a5f1ee3">JtagValidateMioPins()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="a6d7bf309d936159a34ee37a072706ec4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void jtagShiftTDI </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>tdiData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>tdoData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>clkCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>exitState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs Jtag shift TDI operation. </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>.</p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a4ad376e7e58fcf232bfc73ce22c6ca68">jtagShiftTDIBits()</a>.</p>

</div>
</div>
<a class="anchor" id="a4ad376e7e58fcf232bfc73ce22c6ca68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int jtagShiftTDIBits </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>tdiBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>tdoBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bitCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">js_state_t&#160;</td>
          <td class="paramname"><em>endState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function will be used to shift long bits. </p>
<dl class="section return"><dt>Returns</dt><dd>1 if shift state is to be exited.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If tdoBuf != NULL, data will be read from device. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a7536fc31bdd4f46c83f517442b520977">getByteCountFromBitCount()</a>, <a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>, and <a class="el" href="xilskey__jscmd_8c.html#a6d7bf309d936159a34ee37a072706ec4">jtagShiftTDI()</a>.</p>

</div>
</div>
<a class="anchor" id="adbcca77303d5d6c281dbabec5a5f1ee3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int JtagValidateMioPins </td>
          <td>(</td>
          <td class="paramtype">XilSKey_ModuleSelection&#160;</td>
          <td class="paramname"><em>Module</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function validates MIO pins. </p>
<dl class="section return"><dt>Returns</dt><dd>0 value</dd></dl>
<dl class="section note"><dt>Note</dt><dd>none </dd></dl>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a1a649f81c76f0a81196ac2d6a411bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void JtagWrite </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>bit</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>JTAG Server Write routine. </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#aaebc31c432e1cd2d9ebdbaa0b06a4995">jtag_setPreAndPostPads()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, <a class="el" href="xilskey__utils_8c.html#a2a71bd701b24852c007d5ebad8acc257">XilSKey_Efuse_IsTimerExpired()</a>, <a class="el" href="xilskey__utils_8c.html#ab2eaa24ca4b7d40aab0d75804d217616">XilSKey_Efuse_SetTimeOut()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="ad71fe773dff0bd882d39c2936e319c63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int JtagWrite_Ultrascale </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Bit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Page</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Redundant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function blows the fuse of Ultrascale with provided parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Row</td><td>specifies the row number of EFUSE to blow. </td></tr>
    <tr><td class="paramname">Bit</td><td>Specifies the bit location in the given row. </td></tr>
    <tr><td class="paramname">Page</td><td>tell the page of EFUSE in which the given row is located. </td></tr>
    <tr><td class="paramname">Redundant</td><td>is a flag to specify the bit to be programmed is Normal bit or Redundant bit.<ul>
<li>Redundant - XSK_EFUSEPL_REDUNDANT_ULTRA</li>
<li>Normal - XSK_EFUSEPL_NORMAL_ULTRA</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7464db2af53dd1a43ebc36827189cb52">jtag_shift()</a>, <a class="el" href="xilskey__epl_8c.html#a48a8908e1f7d0df90b4ea73dfcd8c99b">PlFpgaFlag</a>, <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>, <a class="el" href="xilskey__utils_8c.html#a82232deb8afce5110fd62446f36c26b2">TimerTicksfor1000ns</a>, <a class="el" href="xilskey__utils_8c.html#a2a71bd701b24852c007d5ebad8acc257">XilSKey_Efuse_IsTimerExpired()</a>, <a class="el" href="xilskey__utils_8c.html#a3f78c13955deedf337289569a5dc0387">XilSKey_Efuse_StartTimer()</a>, and <a class="el" href="xilskey__bbram_8c.html#ad332b969fb28da07cb32106cb4fbebf4">XilSKeyJtag</a>.</p>

</div>
</div>
<a class="anchor" id="aa12af5b761b072bbd5f220eb1efc0b96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void navigateTAP </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>startState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>endState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs NavigateTAP. </p>

<p>References <a class="el" href="xilskey__jscmd_8c.html#a3b12651f0c85e8830046ff9fb542f6d8">getNavigateTAPValue()</a>, <a class="el" href="xilskey__jscmd_8c.html#ab98b09590119fe0a6ab338013f13528d">js_printf</a>, and <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>.</p>

</div>
</div>
<a class="anchor" id="a4303ea32671ab608d25123c7f70159ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int open_port </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structjs__lib__server__struct.html">js_lib_server_t</a> *&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structjs__port__descr__struct.html">js_port_descr_t</a> *&#160;</td>
          <td class="paramname"><em>port_descr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">js_lib_port_t **&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs open port operation. </p>
<dl class="section return"><dt>Returns</dt><dd>-1 value </dd></dl>

<p>References <a class="el" href="structjs__lib__server__struct.html#a3cd9cc1c5daefb198a7db069baf79262">js_lib_server_struct::base</a>, <a class="el" href="structjs__node__struct.html#a5ca68acf03d0472355c10dc2e40ff8ac">js_node_struct::idcode</a>, <a class="el" href="structjs__node__struct.html#a24846c0e06f68b5b64c97c1d9d31fd03">js_node_struct::is_active</a>, <a class="el" href="structjs__node__struct.html#af7cdc8e1c5731424f3796ad530e33e81">js_node_struct::is_tap</a>, <a class="el" href="xilskey__jscmd_8c.html#a78af9b51ba9fcca1fee4e43816ccf78f">jtag_navigate()</a>, <a class="el" href="structjs__node__struct.html#ab75a111d16fea99608c9f9cec1badaed">js_node_struct::name</a>, <a class="el" href="structjs__node__struct.html#a06ba02c37fe4cc4855991ab1e7350b92">js_node_struct::port</a>, <a class="el" href="xilskey__jscmd_8c.html#a9416efb3f480fb568cd0e7e625363ecf">set_last_error</a>, and <a class="el" href="xilskey__jscmd_8c.html#a3222cb7373329b7e49fb631629e297d4">setPin()</a>.</p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a84993b73c0bf1d71424fad91d4fdfbe7">js_init_zynq()</a>.</p>

</div>
</div>
<a class="anchor" id="a3222cb7373329b7e49fb631629e297d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int setPin </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>&lt; Prototype declarations for Xilskey jscmd APIs </p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon()</a>, <a class="el" href="xilskey__jscmd_8c.html#a6d7bf309d936159a34ee37a072706ec4">jtagShiftTDI()</a>, <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>, <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#aa12af5b761b072bbd5f220eb1efc0b96">navigateTAP()</a>, and <a class="el" href="xilskey__jscmd_8c.html#a4303ea32671ab608d25123c7f70159ae">open_port()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a887c0b49910954d0dddb6f6f3127f448"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned int JTAGNavigateTable[256]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>File generated by JTAG.EXE. </p>
<p>This are the tms values and the corresponding bit counts to navigate quickly from any state to any state. </p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a3b12651f0c85e8830046ff9fb542f6d8">getNavigateTAPValue()</a>.</p>

</div>
</div>
<a class="anchor" id="a48a8908e1f7d0df90b4ea73dfcd8c99b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XSKEfusePl_Fpga PlFpgaFlag</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For Storing Fpga series. </p>

<p>Referenced by <a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale()</a>, and <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>.</p>

</div>
</div>
<a class="anchor" id="ad332b969fb28da07cb32106cb4fbebf4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XilSKey_JtagSlr XilSKeyJtag</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>JTAG Tap Instance. </p>

<p>Referenced by <a class="el" href="xilskey__bbram__ultrascale__example_8c.html#afdb9b1c206a7bc8f6b18653dc3b5e5e1">Bbram_Close_Ultra()</a>, <a class="el" href="xilskey__jscmd_8c.html#a7d6c014687d7fabae96174e4e80907a3">Bbram_DeInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#abae9797f8dabe8fe6089a60337059572">Bbram_Init()</a>, <a class="el" href="xilskey__jscmd_8c.html#a78e9cdbbe9a8bb08255b8cdada63efe5">Bbram_ProgramKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a0099206e41d3ca07d3d0feeb8a1802bb">Bbram_VerifyKey()</a>, <a class="el" href="xilskey__jscmd_8c.html#a50f568193dfe2570ed49e4e368725e2b">calcInstr()</a>, <a class="el" href="xilskey__jscmd_8c.html#a65f94f046816b7e5dddb8e06dcfa0db0">Jtag_Read_Sysmon()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2240f1d411f1eef6605ee6da1426c5ba">JtagAES_Check_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a59fd1f16ea68cca3d04d37883079e6f4">JtagRead()</a>, <a class="el" href="xilskey__jscmd_8c.html#a81be870dc9cfe995815d14bc106473a7">JtagRead_Status_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#a2740a0531078952f78e0b2680f62cd1a">JtagRead_Ultrascale()</a>, <a class="el" href="xilskey__jscmd_8c.html#ae229739e4765d3ed48b18e529764bdfe">JtagServerInit()</a>, <a class="el" href="xilskey__jscmd_8c.html#a399e6b6a3d8842f49de0758c5b25c67d">JtagServerInitBbram()</a>, <a class="el" href="xilskey__jscmd_8c.html#a8a1a649f81c76f0a81196ac2d6a411bc">JtagWrite()</a>, and <a class="el" href="xilskey__jscmd_8c.html#ad71fe773dff0bd882d39c2936e319c63">JtagWrite_Ultrascale()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
